<?php
class DateHelper extends AppHelper {

    /**
     * แปลงวันที่จาก format 31/1/2010
     * เป็น 31 January 2010
     * @param string $date
     * @return string date, - ถ้า date = null
     */
    function displayDate($date) {
        if ($date != null) {
            // ถ้า format date ที่เข้ามาเป็น d/m/y
            if (strstr($date, '/')) {
                list($day, $month, $year) = explode('/', $date);
                return date('d F Y', strtotime($month . '/' . $day . '/' . $year));
            } else { // y-m-d
                return date('d F Y', strtotime($date));
            }
        }
        return '-';
    }

    /**
     * แปลงวันที่จาก format 31/1/2010
     * เป็น 31 January 2010
     * @param string $date
     * @return string date, - ถ้า date = null
     */
    function displayBirthDate($date) {
        if ($date != null) {
            // ถ้า format date ที่เข้ามาเป็น d/m/y
            if (strstr($date, '/')) {
                list($day, $month, $year) = explode('/', $date);
                return date('d F', strtotime($month . '/' . $day . '/' . $year));
            } else { // y-m-d
                return date('d F', strtotime($date));
            }
        }
        return '-';
    }

    /**
     *
     * แปลงวันที่จาก format วันที่สำหรับใช้ใน jquery datepicker
     * เป็น 31/1/2010
     * @param <type> $date
     * @return <type>
     */
    function displayDatepicker($date) {
        if ($date != null) {
            return date('d/m/Y', strtotime($date));
        }
        return '';
    }

    /**
     * แปลง format วัน และ เวลา (ถ้ามี)
     * 2010-01-31 10:00 => 31 January 2010 10:00
     * 2010-01-31 00:00 => 31 January 2010
     * 2010-01-31 => 31 January 2010
     * @param <type> $date
     * @return <type>
     */
    function displayDateTime($date) {
        if ($date != null) {
            if (date('H', strtotime($date)) == '00' && date('i', strtotime($date)) == '00') {
                return date('d M Y', strtotime($date));
            } else {
                return date('d M Y H:i', strtotime($date));
            }
        }
        return '-';
    }

    /**
     * เปรียบเทียบวัน/ เวลาที่รับเข้ามากับวันที่ปัจจุบัน นานเกินกว่าที่กำหนดไว้ใน SystemPreference หรือไม่
     * @param <type> $date
     * @return <type>
     */
    function overMeeting($date) {
        if ($date == null) {
            return false;
        }

        $overMonth = $this->requestAction('system_preferences/get/last_meeting');
        $date3 = $this->_add_date($date, 0, $overMonth);
        $lastTime = strtotime($date3);
        return $lastTime < time();
    }

    /**
     * pravate method ใช้ บวก วันที่ตาม parameter ที่ระบุเข้ามา
     * @param <type> $givendate
     * @param <type> $day
     * @param <type> $mth
     * @param <type> $yr
     * @return <type>
     */
    function _add_date($givendate, $day = 0, $mth = 0, $yr = 0) {
        $cd = strtotime($givendate);
        $newdate = date('Y-m-d h:i:s', mktime(date('h',$cd),
                date('i',$cd), date('s',$cd), date('m',$cd)+$mth,
                date('d',$cd)+$day, date('Y',$cd)+$yr));
        return $newdate;
    }
}
?>
